home *** CD-ROM | disk | FTP | other *** search
/ Aminet 25 / Aminet 25 (1998)(GTI - Schatztruhe)[!][Jun 1998].iso / Aminet / text / tex / amiweb2c.lha / AmiWeb2c-2.1 / texmf / pastex / rexx / Start_TeX.sd < prev    next >
Encoding:
Text File  |  1997-02-09  |  3.4 KB  |  143 lines

  1. /*
  2. ** AREXX $VER: Start_TeX.sd V1.42 (24.7.92)
  3. **
  4. ** This AREXX script saves and compiles the current view using the last
  5. ** format used, unless you supply a format name as argument. A '?'
  6. ** formatname will interactively ask for the format to use. If no format
  7. ** is supplied and the TeX-server has been set up to always ask for the
  8. ** default format, then it will do so here. Even under WB 1.3
  9. **
  10. ** A command is send to the TeX server to compile the file. Hence a
  11. ** return value of 0 does not mean that the file compiled well, but only
  12. ** that the command was sent to the server and replied to.
  13. **
  14. ** AUTHOR: J\"org H\"ohle, March 91
  15. **         Revised: 24 July 1991
  16. **
  17. ** BUGS: virtex doesn't like filenames with blanks (and ARexx parses them
  18. **       hardly too), so avoid them in file, directory *and* device names.
  19. **
  20. ** FILES: ENV:TEXFORMAT     default format used
  21. **        REXX:NameStruc
  22. **
  23. ** EXAMPLE: of ENV:TEXCONFIG(TeX:config/)ShowDVI.config (partial)
  24. **
  25. **   f1 TeX:rexx/Start_TeX.sd          ; use default=last used
  26. **   f2 TeX:rexx/Start_TeX.sd plaine   ; use English format
  27. **   f3 TeX:rexx/Start_TeX.sd plaind   ; use Deutsch format
  28. **   f4 TeX:rexx/Start_TeX.sd latexgde ; use LaTeX special format
  29. **   f5 TeX:rexx/Start_TeX.sd ?        ; always ask for format
  30. */
  31.  
  32. PORTNAME = 'Start_TeX'
  33. SCRIPT   = 'TeX-server.rexx'
  34.  
  35. /*
  36. ** Ask interactively for format name
  37. */
  38. If "" = GetClip("TEXQUERY") Then
  39.   ASKFORMAT = 0
  40. Else
  41.   ASKFORMAT = 1
  42.  
  43. Options Results
  44.  
  45. Parse Arg FORMAT .
  46. If "?" = FORMAT Then Do
  47.   ASKFORMAT = 1
  48.   FORMAT    = ""
  49. End; Else If '&' = Left(FORMAT,1) Then
  50.   FORMAT = SubStr(FORMAT,2)
  51.  
  52. GetFile
  53. LOADEDFILE = RESULT
  54.  
  55. GetDir
  56. LOADEDDIR = RESULT
  57.  
  58. If Right(LOADEDDIR,1) ~= '/' & Right(LOADEDDIR,1) ~= ':' Then
  59.   LOADEDDIR = LOADEDDIR||'/'
  60.  
  61. FULLNAME = LOADEDDIR||LOADEDFILE
  62.  
  63. Parse Value NameStruc(FULLNAME) With IVOL IDIRS IBASE .
  64.  
  65. /*
  66. ** May be use GetClip("TEXFILE")?
  67. */
  68. If ".DVI" = Upper(Right(LOADEDFILE,4)) Then
  69.   FULLNAME = Overlay(".tex", FULLNAME,1+IVOL+IDIRS+IBASE)
  70. Else
  71.   FULLNAME = FULLNAME||".tex"
  72.  
  73. If 0 = IVOL Then Do
  74.   DIREC = Pragma('D')
  75.   If Right(DIREC,1) ~= '/' & Right(DIREC,1) ~= ':' Then
  76.     DIREC = DIREC||'/'
  77.   FULLNAME = DIREC||FULLNAME
  78. End
  79.  
  80. If ~Exists(FULLNAME) Then Do
  81.   Okay1 'Konnte die Datei 'FULLNAME' nicht finden!'
  82.   Exit 10
  83. End
  84.  
  85. If Show('Port',PORTNAME) Then Do
  86. /*
  87. ** Set the default FORMAT, modify it to suit your needs
  88. */
  89.   ENVFORMAT = MyGetEnv("TEXFORMAT")
  90.   If "" = FORMAT Then Do
  91.     FORMAT = ENVFORMAT
  92.     If ASKFORMAT | "" = ENVFORMAT Then Do
  93.       If "" = FORMAT Then
  94.         FORMAT = 'plain'
  95.  
  96.       'GetString 'FORMAT '"Which format to use ?"'
  97.       NFORMAT = RESULT
  98. /*
  99. ** "RESULT" if cancelled
  100. */
  101.       If "RESULT" ~= NFORMAT Then
  102.         FORMAT = NFORMAT
  103.     End /* ASKFORMAT */
  104.   End   /* FORMAT    */
  105.  
  106.   If FORMAT ~= ENVFORMAT Then
  107.     Call MySetEnv("TEXFORMAT",FORMAT)
  108.  
  109.   Message 'Calling TeX server with format 'FORMAT' and file 'FULLNAME'.'
  110.  
  111.   OLDADDR = Address()
  112.   Address Value PORTNAME
  113.   'compile' FORMAT FULLNAME
  114.   Address Value OLDADDR
  115.   Message 'TeX server called for file 'FULLNAME'.'
  116. End; Else Do
  117.   Okay1 'Der TeX-Server läuft nicht!'
  118.   Exit 10
  119. End
  120.  
  121. Exit
  122.  
  123. /*
  124. ** When will ARexx supply GetEnv/SetEnv?
  125. */
  126. MyGetEnv: Procedure
  127. Parse Arg NAME
  128.  
  129. If Open(TEMPFILE,"ENV:"||NAME,'r') Then Do
  130.   GIVES = Readln(TEMPFILE)
  131.   Call Close TEMPFILE
  132. End; Else
  133.   GIVES = ""
  134.  
  135. Return GIVES
  136.  
  137. MySetEnv: Procedure
  138. Parse Arg NAME,CONTENT
  139.  
  140. Address COMMAND "SetEnv" NAME CONTENT
  141.  
  142. Return
  143.